/**
 * 
 */
package cn.terrence.myrpc.common.annotation;

import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

import cn.terrence.myrpc.common.annotation.custom.Consumer;

/**
 * @author Terrence2013
 * 2018年1月23日 下午3:43:44
 * 自定义注解解析
 */
public class CustomAnnotationParser {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		parse(TestVo.class);
	}
	
	public static void parse(Class<?> clazz){
		Annotation annotation = clazz.getAnnotation(Consumer.class);
		if(null!=annotation){
			Consumer consumer = (Consumer)annotation;
			System.out.println(consumer.value());
		}
		//获取定义的类属性
		Field[] fields = clazz.getDeclaredFields();
		if(null!=fields && fields.length>0){
			for(int index=0,length=fields.length;index<length;index++){
				Field field = fields[index];
				System.out.println(field.getName()+":"+field.toGenericString());
			}
		}
		//获取定义的类方法
		Method[] methods = clazz.getDeclaredMethods();
		if(null!=methods && methods.length>0){
			for(int index=0,length=methods.length;index<length;index++){
				Method method = methods[index];
				System.out.println(method.getName()+":"+method.toGenericString());
			}
		}
	}

}
